+2004-03-11 Federico Mena Quintero <federico@ximian.com>
+
+ * gtk/gtkfilechooserdefault.c (remove_settings_signal): New
+ function, copied from gtkpathbar.c.
+ (gtk_file_chooser_default_dispose): Use remove_settings_signal()
+ rather than our own code.
+ (gtk_file_chooser_default_screen_changed): Use
+ remove_settings_signal(); this should handle per-screen settings
+ correctly.
+
Thu Mar 11 14:07:18 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_focus): Fix a missing return
+2004-03-11 Federico Mena Quintero <federico@ximian.com>
+
+ * gtk/gtkfilechooserdefault.c (remove_settings_signal): New
+ function, copied from gtkpathbar.c.
+ (gtk_file_chooser_default_dispose): Use remove_settings_signal()
+ rather than our own code.
+ (gtk_file_chooser_default_screen_changed): Use
+ remove_settings_signal(); this should handle per-screen settings
+ correctly.
+
Thu Mar 11 14:07:18 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_focus): Fix a missing return
+2004-03-11 Federico Mena Quintero <federico@ximian.com>
+
+ * gtk/gtkfilechooserdefault.c (remove_settings_signal): New
+ function, copied from gtkpathbar.c.
+ (gtk_file_chooser_default_dispose): Use remove_settings_signal()
+ rather than our own code.
+ (gtk_file_chooser_default_screen_changed): Use
+ remove_settings_signal(); this should handle per-screen settings
+ correctly.
+
Thu Mar 11 14:07:18 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_focus): Fix a missing return
+2004-03-11 Federico Mena Quintero <federico@ximian.com>
+
+ * gtk/gtkfilechooserdefault.c (remove_settings_signal): New
+ function, copied from gtkpathbar.c.
+ (gtk_file_chooser_default_dispose): Use remove_settings_signal()
+ rather than our own code.
+ (gtk_file_chooser_default_screen_changed): Use
+ remove_settings_signal(); this should handle per-screen settings
+ correctly.
+
Thu Mar 11 14:07:18 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_focus): Fix a missing return
+2004-03-11 Federico Mena Quintero <federico@ximian.com>
+
+ * gtk/gtkfilechooserdefault.c (remove_settings_signal): New
+ function, copied from gtkpathbar.c.
+ (gtk_file_chooser_default_dispose): Use remove_settings_signal()
+ rather than our own code.
+ (gtk_file_chooser_default_screen_changed): Use
+ remove_settings_signal(); this should handle per-screen settings
+ correctly.
+
Thu Mar 11 14:07:18 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_focus): Fix a missing return
}
}
+/* Removes the settings signal handler. It's safe to call multiple times */
+static void
+remove_settings_signal (GtkFileChooserDefault *impl,
+ GdkScreen *screen)
+{
+ if (impl->settings_signal_id)
+ {
+ GtkSettings *settings;
+
+ settings = gtk_settings_get_for_screen (screen);
+ g_signal_handler_disconnect (settings,
+ impl->settings_signal_id);
+ impl->settings_signal_id = 0;
+ }
+}
static void
gtk_file_chooser_default_dispose (GObject *object)
impl->extra_widget = NULL;
}
- if (impl->settings_signal_id)
- {
- GtkSettings *settings;
-
- settings = gtk_settings_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (impl)));
- g_signal_handler_disconnect (settings, impl->settings_signal_id);
- impl->settings_signal_id = 0;
- }
+ remove_settings_signal (impl, gtk_widget_get_screen (GTK_WIDGET (impl)));
G_OBJECT_CLASS (parent_class)->dispose (object);
}
if (GTK_WIDGET_CLASS (parent_class)->screen_changed)
GTK_WIDGET_CLASS (parent_class)->screen_changed (widget, previous_screen);
+ remove_settings_signal (impl, previous_screen);
check_icon_theme (impl);
g_signal_emit_by_name (widget, "default-size-changed");